The present application addresses a method and apparatus for a Voice Recognition User Interface For Telephone Handsets. Other applications filed simultaneously herewith and detailing related inventions include xe2x80x9cCommunication Protocol Between A Communication Device And An External Accessoryxe2x80x9d, Qualcomm Inc. Ser. No. 09/248,514.
I. Field of the Invention
The present invention relates to communications and telecommunication devices. More particularly, the present invention relates to a novel and improved voice recognition user interface and related method for use with a portable phone and related hands free phone accessory.
II. Description of the Related Art
User interfaces continue to represent a field of ongoing advancement. Technological innovations allow consumer operated devices such as cellular phones to have a large number of functions accessible to the user through myriad menu options. Cellular phones typically incorporate LCD displays to show user prompts and menu options. Cellular phones also incorporate softkeys whose function changes depending on the active menu. The softkey function is typically indicated on the LCD display. Cellular phones commonly combine numerous features including the ability to store a user defined phonebook of commonly called numbers, single button last number redial capability, previously called number memory, and caller phone number identification. Furthermore, small handheld cellular phones typically can be combined with accessories like hands free car kit adapters that allow users to operate the phone in their car without the need to hold it in their hand.
The ability to operate the phone without having to hold on to it comes with some disadvantages. A user is still required to look at the phone display for prompts and is required to dial numbers and search through the phone""s directory with manual keystrokes. This can present an obstacle for a user that is driving and simultaneously attempting to navigate the various menus available on the phone. The present invention solves these problems by incorporating into the telephone handset or hands free kit (HFK) a voice recognition user interface that allows complete hands free dialing. Additionally, the method of the present invention provides additional functions that utilize voice recognition. The voice recognition user interface is used in conjunction with the standard phone user interface to greatly minimize the number of manual keystrokes required of the user.
The present invention is a novel and improved method and apparatus implementing a voice recognition enhanced phone user interface. A method is disclosed for allowing users complete dialing function accessibility through voice recognition. This allows a user to have a true hands free phone interface.
The voice recognition user interface may be implemented in software code running on a microprocessor or as a hardwired device. Voice Recognizer (VR) may be described as a process or method for effecting an interface between a user and a phone having voice recognition capabilities. The details of the voice recognition process per se are not the subject of this application and are not discussed. This application deals only with the interface between a user and a phone that has been provided with voice recognition capabilities.
In a preferred embodiment, a method is disclosed whereby a user can enter voice recognition mode from a standby phone mode by either saying an activation term, such as xe2x80x9cwake-upxe2x80x9d, twice or by pressing a handset key. In the preferred embodiment detailed below, the method first checks to see if initial voice training has previously been performed. If voice training has previously been performed, the preferred method continues to the top level menu. However, if voice training has not been performed, the method initiates a training menu.
The preferred method includes two vocabulary sets that require training, the Basic Set and the Digit Set. The Basic Set includes user command terms whereas the Digit Set includes words associated with keypad and dialing functions. In the preferred method, the user is prompted by the phone to say successive words in the vocabulary set that is being trained. The user is prompted to repeat the word and then if Voice Recognizer decides both utterances of the word match, it saves that word. The training method continues until all words in the current vocabulary set have been trained.
In the top level menu, the preferred method allows the user voice command access to four functions and, by saying xe2x80x9cSleepxe2x80x9d, the ability to exit Voice Recognizer (VR). At the top level menu, the method allows the user to initiate the commands xe2x80x9cRedialxe2x80x9d, xe2x80x9cCallxe2x80x9d, xe2x80x9cVoicebookxe2x80x9d, or to say a name previously saved in the Voice Recognizer phonebook. Each of the possible voice commands at the top level menu, xe2x80x9cRedialxe2x80x9d, xe2x80x9cCallxe2x80x9d, xe2x80x9cVoicebookxe2x80x9d, or a name will, in the preferred method, initiate the corresponding function.
The Redial Function in the preferred method enables the user, through voice commands, to originate a call to the last number dialed.
The Call Function enables the user to originate phone calls using voice commands by saying a name within the Voice Recognizer phonebook or by entering a Number Function that allows a phone number to be entered and originated through voice commands. In the Call Function, the method first checks to see that Digit Set training has been completed. The method then checks to see if there are any entries in the Voice Recognizer (VR) phonebook. If Digit Set training has not been completed and the VR phonebook is empty, the method instructs the VR to inform the user of that status and to return to the top level menu within the VR mode. As long as the VR phonebook is not empty, VR will prompt the user for a name. If the user speaks a name, VR commences the Name Function. If Digit Set training has been completed the user can additionally access the Number Function by saying, xe2x80x9cNumberxe2x80x9d. The Number Function is not accessible in the preferred method if Digit Set training has not been completed. Conversely, the Number Function is the only function available if Digit Set training has been completed and the VR phonebook is empty.
In the Number Function, the method prompts the user to say digits in a phone number or to request xe2x80x9cCallxe2x80x9d or xe2x80x9cVerifyxe2x80x9d. The user is allowed to enter a phone number, one digit at a time, up to 32 digits in length. The method allows the user to erase incorrectly entered digits one at a time by saying, xe2x80x9cClearxe2x80x9d. The clear command causes the last entered digit to be deleted. The preferred method also allows the user to verify the entered phone number by saying, xe2x80x9cVerifyxe2x80x9d. If the user commands xe2x80x9cVerifyxe2x80x9d, VR will read back the entered digits and then follow with a prompt to enter more digits. This allows a user to verify digits entered prior to completing entry of an entire phone number. The xe2x80x9cVerifyxe2x80x9d command can similarly be used to verify an entered phone number prior to originating a call. After digits have initially been entered, the user can originate a phone call by saying, xe2x80x9cCallxe2x80x9d.
The Name Function incorporated by the method allows the user to recall phone numbers in the VR phonebook by saying the name associated with the phone number. In the top level menu or in the Call Function when a user says a name VR checks to see if multiple names in the VR phonebook match that name. If multiple names in the VR phonebook match the user name request, VR compiles a list of names that match then asks the user if the best match was the one requested. If the user does not agree, VR continues by asking if the next best match was the one requested. VR continues this loop until the user agrees with a match or VR exhausts the list of matching entries. If VR exhausts the list of matching entries, VR cancels the Name Function and returns to the top level menu. If the user agrees with one of the matches, VR continues as if this were the only name that matched. If only one name matches, VR requests affirmation of the name to call. If the user affirms, VR is exited and the call is originated. If the user does not affirm, VR cancels the Name Function and returns to the top level menu.
The preferred method allows the Voicebook Function to be accessed at the top level menu. Some functions can be accessed through voice commands while access to other functions require user input via the handset keypad. Upon entry into the Voicebook Function, VR prompts the user to say xe2x80x9cAddxe2x80x9d, xe2x80x9cDeletexe2x80x9d, xe2x80x9cListxe2x80x9d, or to select from the keypad options.
The List function allows the user to browse through the VR phonebook. In response to the user saying, xe2x80x9cListxe2x80x9d in the voicebook menu, VR checks to see if the VR phonebook is empty. If the VR phonebook is empty, then there are no entries to browse through. If the VR phonebook is not empty, VR reads the names in the VR phonebook and continues until the final entry is reached or VR is interrupted by the user.
The user says, xe2x80x9cAddxe2x80x9d to make additions to the VR phonebook. If the VR phonebook is not full, VR asks the user for the name to add. Once the user says a name, VR prompts the user to repeat the name. After the user repeats the name VR first checks to see that the new name does not match one of the command words. If the name matches a command word, the user is told which command word that the name is close to and is instructed to say another name. VR is then directed to the beginning of the name input loop of the Add Function. If the name does not match one of the command words, VR checks to see that both utterances of the name match. If the two words do not match VR tells the user the match was unsuccessful and to try again. After an unsuccessful match, VR returns to the first prompt of the Add Function. Following a successful match, VR checks to see if the handset phonebook (not the VR phonebook) contains any entries. If the handset phonebook is empty, VR instructs the user to use the keypad to enter a phone number. Once the user has completed the phone number entry, VR tells the user that the name was added to the VR phonebook. VR saves the number and returns to the Voicebook Function. If the handset phonebook is not empty, VR allows the user to enter the phone number using the keypad or scroll through the handset phonebook to find a number to assign to the name. Once a number has been entered, either by scrolling through the handset phonebook or by keypad entry, the user presses the xe2x80x9cADDxe2x80x9d key to save the number in the VR phonebook. VR then tells the user that the name was added to the VR phonebook. VR saves the number and returns to the Voicebook Function.
The user enters the Delete Function by saying xe2x80x9cDeletexe2x80x9d in the Voicebook Function. VR first checks to see that there are entries in the VR phonebook. If there are entries in the VR phonebook, VR asks the user for the name to delete. Additionally, a softkey on the phone will indicate xe2x80x9cNEXTxe2x80x9d. If the user responds with a name, VR first checks to see if multiple names in the VR phonebook match. If multiple names match, VR compiles the list of matching names, determines the best match, and asks the user if the best match was the one spoken by the user. If the user answers xe2x80x9cnoxe2x80x9d, VR repeats the request using the next best match. This is repeated until the list of matching names is exhausted or the user agrees to the match. If all possible matching names are exhausted without finding a match, VR returns to the top of the Delete Function. If the user agrees with a match, VR deletes the name and number from memory and tells the user that name is deleted. If only one name in the VR phonebook matches, VR asks the user if that is the name to delete. If the user replies xe2x80x9cyesxe2x80x9d, VR tells the user the name is deleted and returns to the top level menu. If the user replies xe2x80x9cnoxe2x80x9d, VR returns to the top of the Delete Function.
If the xe2x80x9cNEXTxe2x80x9d softkey on the phone is depressed, VR retrieves the next name from the VR phonebook and asks the user if that is the name to delete. VR then continues through the process in the same manner as if the user initially spoke the name.
The keypad option at the top of the Voicebook Function allows the user to choose to clear VR book entries. The clear book option is only provided as a keypad function since it is not heavily used. The clear book function will clear all VR phonebook entries.
The training function provides further keypad options corresponding to Basic Set training, Digit Set training, or Retraining. The Basic Set training and Digit Set training have been summarized above and will be further described in the detailed description below. The Retrain Function allows for only portions of the Basic Set or Digit Set to be retrained. The user is prompted to choose the key associated with the Basic Set or the Digit Set. Once the user makes this choice, VR retrieves the first word from the corresponding vocabulary set and asks the user if that is the word to be retrained. If the user agrees, VR instructs the user to retrain the word and following retraining, retrieves the next word from the vocabulary set and repeats the process until all words have been exhausted. If, when asked if a word is to be retrained, the user responds with xe2x80x9cnoxe2x80x9d, VR advances to the next word in the vocabulary set and repeats the query with the new word. Whether or not the user actually chooses to retrain them, when all of the words in the vocabulary set have been queried VR tells the user that retraining is complete and returns to the top level menu.
The ability to answer incoming calls in a hands free mode is as important as the ability to initiate calls in a hands free mode. The method addresses this by incorporating a feature that allows voice commanded call answering. When there is an incoming call, VR tells the user there is an incoming call and asks the user whether or not to answer the call. If the user answers xe2x80x9cyesxe2x80x9d the call is answered. If the user answers xe2x80x9cnoxe2x80x9d, there are no further call voice alerts for this incoming call.